package cl.tinet.trainee.proyecto.modelo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 
 * Clase para el map con la tabla sala.
 * 
 * @author Jose Palma
 */
@Entity
@Table(name = "sala")
public class Sala implements Serializable {
    /**
     * serialVersion 1.0.
     */
    private static final long serialVersionUID = 1L;
    /**
     * Identificador de la sala.
     */
    @Id
    @Column(name = "idsala")
    private int idSala;
    /**
     * Nombre de la sala.
     */
    @Column(name = "nombre")
    private String nombre;
    /**
     * Ubicacion de la sala.
     */
    @Column(name = "ubicacion")
    private String ubicacion;
    /**
     * true tiene proyector, false no tiene.
     */
    @Column(name = "proyector")
    private Boolean proyector;
    /**
     * true tiene televisor, false no tiene.
     */
    @Column(name = "televisor")
    private Boolean televisor;
    /**
     * Capacidad de personas en la sala.
     */
    @Column(name = "capacidad")
    private int capacidad;

    public int getIdSala() {
        return idSala;
    }

    public void setIdSala(int idSala) {
        this.idSala = idSala;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getUbicacion() {
        return ubicacion;
    }

    public void setUbicacion(String ubicacion) {
        this.ubicacion = ubicacion;
    }

    public Boolean getProyector() {
        return proyector;
    }

    public void setProyector(Boolean proyector) {
        this.proyector = proyector;
    }

    public Boolean getTelevisor() {
        return televisor;
    }

    public void setTelevisor(Boolean televisor) {
        this.televisor = televisor;
    }

    public int getCapacidad() {
        return capacidad;
    }

    public void setCapacidad(int capacidad) {
        this.capacidad = capacidad;
    }

    /**
     * {@inheritDoc}
     */
    public boolean equals(Object o) {
        if (o == null) {
            return false;
        } else if (!(o instanceof Sala)) {
            return false;
        } else if (this.idSala == ((Sala) o).idSala) {
            return true;
        }
        return false;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        return super.hashCode();
    }

    /**
     * 
     * Copia los datos de un usuario a otro.
     * 
     * @param sala
     *            sala con los datos actualizados.
     */
    public void copiar(Sala sala) {
        this.nombre = sala.getNombre();
        this.proyector = sala.getProyector();
        this.televisor = sala.getTelevisor();
        this.capacidad = sala.getCapacidad();
        this.ubicacion = sala.getUbicacion();
    }
}
